

int ledPin = 6;
int pinBeep = 7;
int trigPin = 8;
int echoPin = 9;


int cm, temp;

void setup() {
  Serial.begin(9600);

  pinMode(ledPin, OUTPUT);
  
  pinMode(pinBeep, OUTPUT);
  
  pinMode(trigPin, OUTPUT);
  
  pinMode(echoPin, INPUT);

}

void beep(int duration) {
  // 点亮发光二极管
  digitalWrite(ledPin, HIGH);
  // 音调高低
  long frequency = 700;
  // 开始发声
  tone(pinBeep, frequency);
  // 发声时长
  delay(100);
  // 停止发声
  noTone(pinBeep);
  // 停止时长
  delay(duration);
  // 熄灭发光二极管
  digitalWrite(ledPin, LOW);
}

void loop() {

  // 激活超声波传感器
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // 读取HC-SR04 超声波传感器的测量举例，配合后面的delay进行计算,超声波的传播速度按照340m/s计算
  temp = int(pulseIn(echoPin, HIGH));
  cm = (temp*17)/10000;
  if (cm <0) {
    cm = - cm;
  }

  // 根据举例模拟蜂鸣器的速度，距离越近，声音越急促
  int duration = cm * 50;
  beep(duration);
  // 串口输出
  Serial.print(duration);
  Serial.println();
  
  delay(100);
  
}
